/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

// 多选开关
window.DataTableMuli = false;

define(['jquery', 'Spinner'], function($, Spinner) {

    var Util = {};

    /**
     * loading animate
     * @type @exp;Object@call;onew
     */
    window.Loading = Object.onew({
        start: function(id) {
            Spinner.spin($(id).get(0));
            id = null;
        },
        finish: function() {
            Spinner.spin().stop();
        }
    });

    window.wpLoading = function(id) {
        id = id || "#main-mid";
        Loading.start(id);
        id = null;
    };

    /**
     * datatable事件监听
     * @returns {undefined}
     */
    Util.dataTableLis = function(tableId, sel) {
        // 绑定节点集合
        var n;
        // 默认为.dTable
        tableId = tableId || '.dTable';
        // 是否可以选中 默认false
        sel = sel || false;
        // 节点还是queryStr
        if (typeof tableId === 'object') {
            n = $(tableId);
        } else {
            n = $(tableId + ' tbody tr');
        }
        n.unbind('click').click(function() {
            if (sel) {
                if (!DataTableMuli) {
                    // 单选
                    $(tableId + ' tbody tr.click').removeClass('click');
                    $(this).addClass('click');
                    dataTableSelectedTr = $(this);
                } else {
                    // 多选
                    var cb = $(this).find('input:checkbox')[0];
                    if ($(this).hasClass('click')) {
                        if (cb) {
                            cb.checked = false;
                        }
                        $(this).toggleClass('click');
                    } else {
                        $(this).addClass('click');
                        if (cb) {
                            cb.checked = true;
                        }
                    }
                    cb = null;
                }
            }
            $('.button.del,.button.edit').css('display', 'inline-block');
        }).mouseover(function() {
            $(this).addClass('hover');
        }).mouseout(function() {
            $(this).removeClass('hover');
        });
        tableId = null;
        n = null;
    };

    window.dataTableLis = Util.dataTableLis;

    Util.resize = function() {

    };

    Util.Alert = function(message, warn, callback) {
        warn = warn || false;
        var node = $('<div id="__alert__"></div>');
        if (warn) {
            node.addClass('warn');
        } else {
            node.removeClass('warn');
        }
        node.html(message);
        $('body').append(node);
        node.css('left', ($('body').width() - node[0].clientWidth) / 2 + 'px').slideDown();
        window.setTimeout(function() {
            node.slideUp(300, function() {
                if (typeof callback === 'function') {
                    callback();
                }
                $('#__alert__').remove();
            });
        }, 2000);
    };

    Util.dataTableLoading = function(query) {
        query = query || '.dTable';
        // <tr><td colspan="6" class="datatableLoading"> </td></tr>
        $('tbody', query).append('<tr class="rmd"><td colspan="6" class="datatableLoading"> </td></tr>');
    };

    Util.dataTableLoadingEnd = function(query, never) {
        query = query || '.dTable';
        never = never || false;
        $('.rmd', query).remove();
        if (!never)
            scrolling = false;
    };

    Util.scrollBottom = function(callback, offset) {
        if (typeof scrolling === 'undefined') {
            scrolling = false;
        }
        offset = offset || 150;
        $(window).scroll(function() {
            totalheight = parseFloat($(window).height()) + parseFloat($(window).scrollTop()) + offset;
            if ($(document).height() <= totalheight && !scrolling) {
                scrolling = true;
                callback();
            }
        });
    };

    Util.listEmptyTip = function(node) {
        $('body').css('min-height', $(window).height());
        node = node || 'body';
        $(node).css('position', 'relative').append('<div class="wshop-empty-tip" onclick="parent.reloadPage();"></div>');
        node = null;
    };

    Util.removeEmptyTip = function() {
        $('.wshop-empty-tip').hide();
    };

    /**
     * 获取订单分类统计数据
     * @returns {undefined}
     */
    Util.loadOrderStatNums = function() {
        $.get(shoproot + '?/WdminAjax/ajaxGetOrderStatnums', function(Json) {
            // cap-nav-item
            var capNavs = $('.cap-nav-item', parent.window.document);
            capNavs.eq(0).find('b').html('(' + Json.payed + ')');
            capNavs.eq(1).find('b').html('(' + Json.delivering + ')');
            capNavs.eq(2).find('b').html('(' + Json.unpay + ')');
            capNavs.eq(3).find('b').html('(' + Json.canceled + ')');
            capNavs.eq(4).find('b').html('(' + Json.all + ')');
        });
    };

    /**
     * 获取商品分类统计数据
     * @returns {undefined}
     */
    Util.loadProductStatNums = function() {
        $.get(shoproot + '?/WdminAjax/ajaxGetProductStatnums', function(Json) {
            // cap-nav-item
            var capNavs = $('.cap-nav-item', parent.window.document);
            capNavs.eq(0).find('b').html('(' + Json.pdcount + ')');
            capNavs.eq(1).find('b').html('(' + Json.cacount + ')');
            capNavs.eq(2).find('b').html('(' + Json.spcount + ')');
            capNavs.eq(3).find('b').html('(' + Json.secount + ')');
            capNavs.eq(4).find('b').html('(' + Json.pdcount2 + ')');
        });
    };

    /**
     * 获取代理统计数据
     * @returns {undefined}
     */
    Util.loadCompanyStatNums = function() {
        $.get(shoproot + '?/WdminAjax/ajaxGetCompanyStatNums', function(Json) {
            // cap-nav-item
            var capNavs = $('.cap-nav-item', parent.window.document);
            capNavs.eq(0).find('b').html('(' + Json.count1 + ')');
            capNavs.eq(1).find('b').html('(' + Json.count2 + ')');
            capNavs.eq(2).find('b').html('(' + Json.count3 + ')');
        });
    };

    Util.onresize = function(func) {
        if (typeof func === 'function') {
            $(window).on('resize', func);
            func();
        }
    };

    return Util;
});

Object.onew = function(o) {
    var F = function(o) {
    };
    F.prototype = o;
    return new F;
};